<?php
// Initialisation des variables
$liste_produits = array();
$nb_produits = 0;
$prix_total = 0;

if($page == 'panier') {
		$page_title = 'Panier';
}

// $id contient le produit à rajouter (ou a supprimer)
if($id && $page == 'panier' && $id_user && Livre::exists($id)) {
	$id_produit = $id;


	$ligne = new Panier();
	$ligne = $ligne->exists($id_produit, $id_user);

	// si action=delete apparait dans l'url, c'est une ligne du panier qu'il faut supprimer...
	if(isset($_GET['action']) && $_GET['action'] == 'delete') {
		if($ligne) {
			$ligne->delete();
		}
		setMessage('Ce produit a été retiré de votre panier.');
	}
	else {
		// ... sinon, il faut l'ajouter
		if(!$ligne) {
			$ligne = new Panier();
		}

		// qutité, 1 par défaut
		$q = 1;
		if(isset($_GET['q'])) {
			$q = $_GET['q'];
		}

		if($ligne->addProduit($id_produit, $id_user, $q)) {
			setMessage("Le produit a été rajouté à votre panier");
		}
		else {
			setMessage("Il y a eu une erreur lors de l'ajout de ce produit.", 'error');
		}	
	}
}



if($id && $page == 'panier' && !Livre::exists($id)) {
	setMessage("Ce produit n'existe pas.", 'error');
}

// Il n'y a pas de produit à rajouter au panier, donc on l'affiche simplement
if($id_user) {
	$lignes = BasePanierQuery::create()
				->innerJoinLivre()
				->innerJoinClient()
				->findByIdClient($id_user); // retrieve a record from a database

	foreach($lignes as $ligne) {
		$quantite = $ligne->getQuantite();
		$prix = $ligne->getLivre()->getPrix();
		$prix_total += $prix * $quantite;
		$nb_produits += $quantite;

		$liste_produits[] = array(
			'titre' => $ligne->getLivre()->getTitre(),
			'image' => 'images/couvertures/' . $ligne->getLivre()->getImage(),
			'prix' => $prix,
			'lien' => 'index.php?page=produit&id=' . $ligne->getLivre()->getId(),
			'quantite' => $quantite,
			'ligne_total' => $prix*$quantite,
			'lien_suppression' => 'index.php?page=panier&action=delete&id=' . $ligne->getLivre()->getId()
		);
	}
}

if(!$id_user && $id && $page == 'panier') {
	setMessage("Il faut être connecté pour ajouter un produit au panier.", 'error');
}

$smarty->assign('liste_produits', $liste_produits);
$smarty->assign('nb_produits', $nb_produits);
$smarty->assign('prix_total', $prix_total);

// Dans le cas d'une requete ajax, on envoie les nouvelles infos au format JSON
if(isset($_GET['format']) && $_GET['format'] == 'resume') {
	print json_encode(array(
		'nb_produits' => $nb_produits, 
		'prix_total' => $prix_total,
		'messages' => getMessages(),
		'errors' => getMessages('error')
		)
	);
	exit(); // pour eviter que tout le template ne s'affiche 
}